using MediatR;
using S.O.ErrorCode;

namespace S.O.Api.Write.Application.Command.Medical
{
    /// <summary>
    /// 医疗卡激活命令
    /// 用于激活新办理的医疗卡
    /// </summary>
    public class ActivateMedicalCardCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 医疗卡号（必填）
        /// </summary>
        public string CardNo { get; set; } = string.Empty;
        
        /// <summary>
        /// 患者ID（必填）
        /// </summary>
        public long PatientId { get; set; }
        
        /// <summary>
        /// 患者姓名（必填，用于身份验证）
        /// </summary>
        public string PatientName { get; set; } = string.Empty;
        
        /// <summary>
        /// 身份证号（必填，用于身份验证）
        /// </summary>
        public string IdCard { get; set; } = string.Empty;
        
        /// <summary>
        /// 操作员
        /// </summary>
        public string Operator { get; set; } = "系统";
        
        /// <summary>
        /// 激活窗口/科室
        /// </summary>
        public string ActivateLocation { get; set; } = "挂号窗口";
        
        /// <summary>
        /// 备注信息
        /// </summary>
        public string? Remarks { get; set; }
    }
}